package com.scale.service.voice.service;

import org.springframework.web.multipart.MultipartFile;

/**
 * 语音文件存储服务接口
 * @author crp
 * @since 2025-09-24
 */
public interface VoiceFileStorageService {

    /**
     * 存储语音文件
     * @param audioData 音频数据（Base64或字节数组）
     * @param format 音频格式
     * @param messageId 关联的消息ID
     * @return 文件访问URL
     */
    String storeVoiceFile(String audioData, String format, Long messageId);

    /**
     * 存储上传的语音文件
     * @param file 上传的文件
     * @param messageId 关联的消息ID
     * @return 文件访问URL
     */
    String storeVoiceFile(MultipartFile file, Long messageId);

    /**
     * 删除语音文件
     * @param fileUrl 文件URL
     * @return 是否删除成功
     */
    boolean deleteVoiceFile(String fileUrl);

    /**
     * 获取文件的本地路径
     * @param fileUrl 文件URL
     * @return 本地路径
     */
    String getLocalPath(String fileUrl);

    /**
     * 存储用户录音文件 (按前端需求格式)
     * @param audioData 音频数据（Base64）
     * @param format 音频格式
     * @param userId 用户ID
     * @return 文件访问URL
     */
    String storeUserVoiceFile(String audioData, String format, Long userId);
}
